package org.jeecgframework.web.service;

import org.jeecgframework.core.common.model.json.TreeBa;
import org.jeecgframework.core.common.service.CommonService;
import org.jeecgframework.web.system.pojo.base.CbsCgreportHeadEntity;
import org.jeecgframework.web.system.pojo.base.CbsRotaLevelEntity;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface CbsCgreportHeadServiceI extends CommonService {

    public <T> void delete(T entity);

    public <T> Serializable save(T entity);

    public <T> void saveOrUpdate(T entity);

    /**
     * 默认按钮-sql增强-新增操作
     *
     * @param id
     * @return
     */
    public boolean doAddSql(CbsCgreportHeadEntity t);

    /**
     * 默认按钮-sql增强-更新操作
     *
     * @param id
     * @return
     */
    public boolean doUpdateSql(CbsCgreportHeadEntity t);

    /**
     * 默认按钮-sql增强-删除操作
     *
     * @param id
     * @return
     */
    public boolean doDelSql(CbsCgreportHeadEntity t);

    /**
     * 根据主表id查询关联表信息
     *
     * @param value
     * @return
     */
    public List<CbsRotaLevelEntity> getRotalevels(String value);

    public String getzdNameForTableName(String name);

    /**
     * 拼接sql
     *
     * @param vkorg     已选项目在cbs_customize_report中对应id
     * @param otabName  主表id
     * @param ttabName  关联表名称，如果有详情表，用/分隔的
     * @param resultOb  自定义条件页面显示值
     * @param type      类型 1，预览。2，保存结果
     * @return Map      返回 页面自定义条件 以及 拼接的sql语句
     */
    public Map getSqlResult(String vkorg, String otabName, String ttabName, String resultOb, String type);
}
